package org.example.test_03.Config;

import org.example.test_03.Config.MyInterceptor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 设置跨域，让前端允许访问后台的接口
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer{

    //配置跨域的
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")      // 设置映射
                .allowedOrigins("*")        // 设置域
                .allowedMethods("*")               // 设置请求的方式GET、POST等
                .allowedHeaders("*");              // 设置头
    }

//
//    @Bean
//    public MyInterceptor myInterceptor() {
//        return new MyInterceptor();
//    }
    //添加了拦截请求的代码
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor())//配置拦截器
                .addPathPatterns("/**/**")//要拦截的请求路径，**表示我们拦截所有的请求路径
                .excludePathPatterns("/user/login")//除了login路径的请求路径不拦截
        ;
    }


    //Ctrl +O

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        WebMvcConfigurer.super.addResourceHandlers(registry);
        registry.addResourceHandler("/files/***")//   可以通过http://localhost:8080/files/  这个地址访问 D:/file里的文件
                .addResourceLocations("file:D:/file/");//我们要配置的目录
    }
}